<script setup lang="ts">
import { ref } from 'vue'
import Child from './Child.vue';

// typeof 是 TS 中的含义，获取 Child 构造函数的类型
// type a = typeof Child
// JS 中获取类型
// const b = typeof Child

// 通过 InstanceType 可以获取构造函数 Child 实例的类型
// InstanceType<typeof Child>

// const o = { name: 'ifer', age: 18 }

// function fn(temp: { name: string, age: number }) {
/* type TO = typeof o
const xxx = typeof o
console.log(xxx) // 'object'
function fn(temp: typeof o) {
  console.log(temp.age)
}
fn(o) */

const cmpRef = ref<InstanceType<typeof Child> | null>(null)

const log = () => {
  cmpRef.value?.log()
}
</script>
<template>
  <div>
    <button @click="log">log</button>
    <hr/>
    <Child ref="cmpRef"/>
  </div>
</template>
